home *** CD-ROM | disk | FTP | other *** search
/ Gigantic Games 2 / Gigantic Games 2.iso / pc / _k_ / kinghigh / kinghigh.amos / kinghigh.amosSourceCode < prev    next >
AMOS Source Code  |  1994-12-23  |  19KB  |  790 lines

  1. Screen Open 0,640,200,16,Hires
  2. Curs Off : Flash Off : Hide 
  3. Get Sprite Palette 
  4. Cls 0
  5. '
  6.   Dim HIGH(6),HIGHNAME$(6),ANS(52),WRDS$(19)
  7. '
  8. Rem *****  All GLOBAL variables listed here  ***** 
  9. '
  10.   Global HIGH(),HIGHNAME$(),ANS(),WRDS$(),WRD$,NAME$,N$
  11.   Global X,Y,GAM,H,BET,NPCK,WIN,RDN,GMBL,SPEED,ZZ,B,A,RD,NRW,WP,DWN
  12.   Global SC$,SCRL$,E1$,E1
  13.   Global XN,GAMESTATE,RNTHR,SP,NPCK,SCNT,CNT,LSC,MSC,CRD,CRD2
  14.   Global X1,SCORE,PCN,SCPCN,MRSCR
  15.   Global FSTRNTHR,RGHT,HL,BG,J,CHRT,FPI
  16.   Global BANKX,PLYX,BANKSCORE,PLYSCORE,PLPONCRD,PLPONCRD2
  17.   Global PONCRD,PONCRD2,XP,XP2,BANKCRD,PLYRCRD,BUST,ND
  18. '
  19. Proc INITHIGHSCORES
  20. '
  21. SCRL$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789',.-?! "
  22. '
  23. SC$=" --- KINGHIGH Volume 2.0 by LUNDY 1992 --- For details on how to play "
  24. SC$=SC$+"read the documentation supplied on disk. --- CREDITS --- All "
  25. SC$=SC$+"coding and graphics are by LUNDY and music is from the AMOS "
  26. SC$=SC$+"PD Library but I don't know who wrote it. "
  27. SC$=SC$+"All I will say is that this version is harder than previous "
  28. SC$=SC$+"versions as I have coded it in such a way that a new "
  29. SC$=SC$+"pack is chosen every 20000 points and at this point I have added "
  30. SC$=SC$+"a PONTOON type of game - see docs for details. Anyway here's "
  31. SC$=SC$+"a DEMO of the first part of the game --------------------------"
  32. SC$=SC$+"------------------ "
  33. '
  34. Def Scroll 1,100,138 To 540,151,-1,0
  35. '
  36. MSC=0
  37.   Paper 3 : Cls 
  38.   Gr Writing 0 : Ink 1,0
  39.   Text 190,100,"Press FIRE when ready to start."
  40.   Repeat : Until Fire(1)
  41.   Randomize Timer
  42.   Cls 
  43.   Text 190,100,"Please wait - choosing you a pack."
  44. '
  45. Proc CHSECRD
  46. '
  47. XN=1 : GAMESTATE=0 : RNTHR=0 : SP=0 : NPCK=20000 : FPI=0
  48. '
  49. GAMEMAIN:
  50. Do 
  51.   If GAMESTATE=0
  52.      Proc SETUP
  53.   Else If GAMESTATE=1
  54.      Proc BEGIN
  55.   Else If GAMESTATE=2
  56.      Proc GAMESETUP2
  57.   Else If GAMESTATE=3
  58.      Proc BEGIN
  59.   Else If GAMESTATE=4
  60.      Proc GAMESETUP2
  61.   End If : End If : End If : End If : End If 
  62. Loop 
  63. '
  64. Procedure SETUP
  65. Unpack 6 To 0
  66. SCNT=1 : CNT=0 : LSC=Len(SC$)
  67. If MSC=0 Then Music 1 : MSC=1
  68. Gr Writing 0 : Ink 0,0
  69. '
  70. STEXT:
  71. Wait Vbl 
  72. Scroll 1
  73. Inc SCNT
  74. If SCNT>9
  75.    SCNT=0 : Add CNT,1,1 To LSC : Proc NCHAR
  76. End If 
  77. If Fire(1) Then Fade 3 : Wait 45 : Music Off : GAMESTATE=1 : Pop Proc
  78. If CNT=LSC Then Proc EXIDEMO : Pop Proc
  79. Goto STEXT
  80. End Proc
  81. '
  82. Procedure NCHAR
  83. E$=Mid$(SC$,CNT,1)
  84. Text 525,147,E$
  85. End Proc
  86. '
  87. Procedure EXIDEMO
  88. Fade 3 : Wait 45
  89.   X1=198 : Y=48
  90.   Unpack 8 To 0 : Double Buffer 
  91.   Wait 20 : Paste Bob X1,Y,3 : Wait 20 : Proc HG_LW
  92.   Wait 20 : Bob 1,21,60,54 : Wait 20 : Bob Off 
  93.   ZZ=1 : Proc WRTWRD : Wait 20 : Paste Bob X1,Y,52 : Wait 20
  94.   ZZ=3 : Proc WRTWRD : Wait 20 : Proc HG_LW : Wait 20 : Bob 1,111,60,54
  95.   Wait 20 : Bob Off : ZZ=2 : Proc WRTWRD : Wait 20 : Paste Bob X1,Y,23 : Wait 20
  96.   ZZ=3 : Proc WRTWRD : Wait 20 : Proc HG_LW : Wait 20 : Bob 1,111,60,54 : Wait 20
  97.   Bob Off : ZZ=2 : Proc WRTWRD : Wait 20 : Paste Bob X1,Y,27 : Wait 20 : ZZ=3 : Proc WRTWRD : Wait 20
  98.   Proc HG_LW : Wait 20 : Bob 1,21,60,54 : Wait 20 : Bob Off : Wait 20 : ZZ=1 : Proc WRTWRD
  99.   Wait 20 : Paste Bob X1,Y,50 : Wait 20 : ZZ=3 : Proc WRTWRD : Wait 20
  100.   ZZ=6 : Proc WRTWRD : Wait 20 : Bob 1,47,113,55 : Wait 20 : Bob Off : Wait 20
  101.   For F=1 To 10
  102.     Bob 1,205,113,55 : Wait 5
  103.     Bob 1,265,113,55 : Wait 5
  104.   Next F
  105. Wait 80 : Fade 3 : Wait 45
  106. End Proc
  107. '
  108. Procedure HG_LW
  109.   Add X1,50
  110.   ZZ=0 : Proc WRTWRD
  111. End Proc
  112. '
  113. Rem ***** The first and third parts of the game *****  
  114. Procedure BEGIN
  115.   If RNTHR=0 Then SCORE=50
  116.   PCN=54 : SP=1 : SCPCN=0 : MSC=1
  117. '
  118. GAMESETUP:
  119.   If RNTHR>0 Then MRSCR=SCORE+200
  120.   If RNTHR=0 Then MRSCR=SCORE+150 : Inc RNTHR
  121.   H=21 : BET=47
  122.   Unpack 8 To 0 : Double Buffer 
  123.   If GAMESTATE=3 Then Paste Bob 272,15,56
  124.   If SCORE>=NPCK Then Proc NWPCK
  125.   If GAMESTATE=3 Then ZZ=9 : Proc WRTWRD
  126.   Sam Play 1,1,10000 : Wait 100
  127.   Paper 3 : Pen 0
  128.   Locate 69,6 : Print MRSCR
  129. '
  130. GAMESTART:
  131. Do 
  132.   If SCPCN=1 Then SCPCN=0 : Pop Proc
  133.   If SCORE>=MRSCR and GAMESTATE=1
  134.      Fade 3 : Wait 45 : GAMESTATE=2 : Pop Proc
  135.   Else If SCORE>=MRSCR and GAMESTATE=3
  136.      Fade 3 : Wait 45 : GAMESTATE=4 : Pop Proc
  137. End If : End If 
  138.   X=198 : Y=48 : WIN=10 : GAM=205 : RDN=0
  139.   GMBL=0 : SPEED=1000
  140.   Locate 69,8 : Print SCORE;" "
  141.   Cls 3,0,0 To 10,10
  142.   Cls 10,566,85 To 581,96
  143.   Paste Icon 567,86,PCN
  144.   Proc PLC_CRD1
  145.   Proc HGH_LW
  146.   If GAMESTATE=1
  147.     Proc PLC_CRD2
  148.   Else If GAMESTATE=3
  149.     Proc RV_CRD2
  150. End If : End If 
  151. Loop 
  152. End Proc
  153. '
  154. Procedure PLC_CRD1
  155.   Paste Bob X,Y,ANS(XN) : Sam Play 1,6,10000
  156.   Proc RANDOM
  157.   CRD2=CRD
  158.   Wait 30
  159. End Proc
  160. '
  161. Procedure PLC_CRD2
  162. Do 
  163.    Paste Bob X,Y,ANS(XN) : Sam Play 1,6,10000 : Wait 40
  164.     Proc RANDOM
  165.   If CRD=CRD2
  166.     ZZ=3 : Proc WRTWRD
  167.   Else If CRD>CRD2 and HL=1
  168.     ZZ=3 : Proc WRTWRD
  169.   Else If CRD<CRD2 and HL=1
  170.     ZZ=4 : Proc WRTWRD : WIN=-10 : Dec XN : Inc PCN : Proc NW_GAME : Pop Proc
  171.   Else If CRD>CRD2 and HL=2
  172.     ZZ=4 : Proc WRTWRD : WIN=-10 : Dec XN : Inc PCN : Proc NW_GAME : Pop Proc
  173.   Else If CRD<CRD2 and HL=2
  174.     ZZ=3 : Proc WRTWRD
  175. End If : End If : End If : End If : End If 
  176.   Proc ICRD
  177.   If SCPCN=1 Then SCPCN=0 : Pop Proc
  178.   Loop 
  179. End Proc
  180. '
  181. Procedure RV_CRD2
  182. Do 
  183.   Paste Bob X,Y,ANS(XN) : Sam Play 1,6,10000 : Wait 40
  184.   Proc RANDOM
  185.    If CRD=CRD2
  186.      ZZ=3 : Proc WRTWRD
  187.    Else If CRD<CRD2 and HL=1
  188.      ZZ=3 : Proc WRTWRD
  189.    Else If CRD>CRD2 and HL=1
  190.      ZZ=4 : Proc WRTWRD : WIN=-10 : Dec XN : Inc PCN : Proc NW_GAME : Pop Proc
  191.    Else If CRD<CRD2 and HL=2
  192.      ZZ=4 : Proc WRTWRD : WIN=-10 : Dec XN : Inc PCN : Proc NW_GAME : Pop Proc
  193.    Else If CRD>CRD2 and HL=2
  194.      ZZ=3 : Proc WRTWRD
  195. End If : End If : End If : End If : End If 
  196.   Proc ICRD
  197. If SCPCN=1 Then SCPCN=0 : Pop Proc
  198. Loop 
  199. End Proc
  200. '
  201. Rem ***** The Second and fourth parts of the game *****  
  202. '
  203. Procedure GAMESETUP2
  204.   Unpack 10 To 0 : Double Buffer 
  205.   H=21 : FSTRNTHR=62
  206.   If GAMESTATE=4 Then Paste Bob 272,15,56
  207.   Paper 3 : Pen 0
  208.   Locate 69,8 : Print SCORE;" "
  209.   Cls 3,0,0 To 10,90
  210. '
  211. GAMESTART2:
  212. Do 
  213.   If SCPCN=1 Then SCPCN=0 : Pop Proc
  214.   RGHT=100 : NRW=0 : X=200 : Y=47
  215.   Cls 10,455,96 To 635,109
  216.   Proc FSTCRD1
  217.   Proc PCK_WHCH
  218.   If GAMESTATE=2
  219.     Proc FSTCRD2
  220.   Else If GAMESTATE=4
  221.     Proc RV_FSTCRD2
  222. End If : End If 
  223. Loop 
  224. End Proc
  225. '
  226. Procedure FSTCRD1
  227.   Wait 50 : Paste Bob X,Y,ANS(XN) : Sam Play 1,6,10000
  228.   Proc RANDOM
  229.   Wait 10 : CRD2=CRD : Add X,50
  230. End Proc
  231. '
  232. Procedure FSTCRD2
  233. Do 
  234.   If SCPCN=1 Then SCPCN=0 : Pop Proc
  235.   Paste Bob X,Y,ANS(XN) : Sam Play 1,6,10000
  236.    Proc RANDOM
  237.      If CRD<CRD2 and HL=1
  238.        RGHT=0 : Proc ZILCH : Pop Proc
  239.      Else If CRD>CRD2 and HL=2
  240.        RGHT=0 : Proc ZILCH : Pop Proc
  241. End If : End If 
  242.   Proc RGHT_CRD
  243.   If NRW=14 Then Pop Proc
  244.   Proc PCK_WHCH
  245.   If SCPCN=1 Then Pop Proc
  246. Loop 
  247. End Proc
  248. '
  249. Procedure RV_FSTCRD2
  250. Do 
  251.   Paste Bob X,Y,ANS(XN) : Sam Play 1,6,10000
  252.   Proc RANDOM
  253.     If CRD>CRD2 and HL=1
  254.       RGHT=0 : Proc ZILCH : Pop Proc
  255.     Else If CRD<CRD2 and HL=2
  256.       RGHT=0 : Proc ZILCH : Pop Proc
  257. End If : End If 
  258.   Proc RGHT_CRD
  259.   If NRW=14 Then Pop Proc
  260.   Proc PCK_WHCH
  261. Loop 
  262. End Proc
  263. '
  264. Rem ***** The Pontoon section of the game *****
  265. Rem ***** Called from the nwpck procedure *****
  266. Rem ***** ------------------------------- *****
  267. Rem
  268. Procedure GAMESETUP3
  269.   Shared GS
  270.   BANKX=50 : PLYX=350 : FSTRNTHR=62 : BUST=0
  271.   BANKCRD=2 : PLYRCRD=2 : ND=0 : GS=5
  272.   Unpack 7 To 0 : Double Buffer 
  273.   Paper 3 : Pen 0
  274.   Locate 40,19 : Print SCORE;" "
  275. Repeat 
  276.   Proc RANDOM : Wait 30
  277.   Proc FRSTPCRD : Wait 30
  278.   Proc RANDOM
  279.   Proc PLYRPONCRD : Wait 30
  280.   Proc PLYRPLY : Wait 50
  281.   Proc BANKPLY : Wait 30
  282.   Proc PONRESULTS : Wait 30
  283.   Proc FINITO
  284. Until ND=1
  285.   Fade 3 : Wait 45
  286. End Proc
  287. '
  288. Procedure FRSTPCRD
  289.   Paste Bob BANKX,64,53 : Sam Play 1,6,10000 : Wait 10
  290.   PONCRD=CRD : XP=ANS(XN-1)
  291.   If PONCRD>10 Then PONCRD=10
  292.   Proc RANDOM
  293.   Add BANKX,50
  294.   Paste Bob BANKX,64,53 : Sam Play 1,6,10000 : Wait 10
  295.   PONCRD2=CRD : XP2=ANS(XN-1)
  296.   If PONCRD2>10 Then PONCRD2=10
  297.   BANKSCORE=BANKSCORE+PONCRD
  298.   BANKSCORE=BANKSCORE+PONCRD2
  299. End Proc
  300. '
  301. Procedure PLYRPONCRD
  302.   Paste Bob PLYX,64,ANS(XN-1) : Sam Play 1,6,10000 : Wait 10
  303.   PLPONCRD=CRD
  304.   If PLPONCRD>10 Then PLPONCRD=10
  305.   Add PLYX,50
  306.   Proc RANDOM
  307.   PLPONCRD2=CRD
  308.   If PLPONCRD2>10 Then PLPONCRD2=10
  309.   Paste Bob PLYX,64,ANS(XN-1) : Sam Play 1,6,10000 : Wait 10
  310.   PLYSCORE=PLYSCORE+PLPONCRD
  311.   PLYSCORE=PLYSCORE+PLPONCRD2
  312.   Locate 70,14 : Print PLYSCORE
  313. End Proc
  314. '
  315. Procedure PLYRPLY
  316.   ZZ=11 : FPI=2 : Proc WRTWRD
  317.   HL=0
  318. Do 
  319.   If Jleft(1) Then HL=1 : Bob 1,419,131,54
  320.     If HL=1 and Fire(1) Then Bob Off 1 : Proc PLYTWIST
  321.   If Jright(1) Then HL=2 : Bob 1,509,131,54
  322.     If HL=2 and Fire(1) Then Bob Off 1 : ZZ=13 : FPI=2 : Proc WRTWRD : Pop Proc
  323.   If BUST=1 Then ZZ=17 : FPI=2 : Proc WRTWRD : Pop Proc
  324.     If PLYRCRD=5 Then Pop Proc
  325. Loop 
  326. End Proc
  327. '
  328. Procedure BANKPLY
  329.   ZZ=14 : FPI=2 : Proc WRTWRD
  330.   Wait 30
  331.   BANKX=50
  332.   Paste Bob BANKX,64,XP : Add BANKX,50 : Sam Play 1,6,10000 : Wait 20
  333.   Paste Bob BANKX,64,XP2 : Sam Play 1,6,10000 : Wait 20
  334.   Locate 35,14 : Print BANKSCORE
  335.   If BUST=1 Then Bob 1,184,131,54 : ZZ=13 : FPI=2 : Proc WRTWRD : Wait 30 : Bob Off 1 : Pop Proc
  336. Do 
  337.   If BUST=2
  338.      Wait 20 : Bob Off 1 : ZZ=17 : FPI=2 : Proc WRTWRD : Pop Proc
  339.   Else If BANKCRD=5
  340.      Bob Off 1 : Pop Proc
  341.   Else If BANKSCORE<=15
  342.      Bob 1,94,131,54 : Proc BANKTWST : Bob Off 1 : Wait 30
  343.   Else If BANKSCORE>15
  344.      Bob 1,184,131,54 : ZZ=13 : FPI=2 : Proc WRTWRD : Wait 30 : Bob Off 1 : Pop Proc
  345.   End If : End If : End If : End If 
  346. Loop 
  347. End Proc
  348. '
  349. Rem ***** The various procedures for the pontoon section ***** 
  350. Rem ***** Called by the playing routines/procedures
  351. '
  352. Procedure PLYTWIST
  353.   ZZ=12 : FPI=2 : Proc WRTWRD
  354.   Add PLYX,50
  355.   Proc RANDOM
  356.   Paste Bob PLYX,64,ANS(XN-1)
  357.   Sam Play 1,6,10000 : Wait 10
  358.   If CRD>10 Then CRD=10
  359.   Inc PLYRCRD : PLPONCRD2=CRD
  360.   If PLPONCRD2>10 Then PLPONCRD2=10
  361.   Add PLYSCORE,PLPONCRD2
  362.   Locate 70,14 : Print PLYSCORE
  363.   If PLYSCORE>21 Then BUST=1 : Pop Proc
  364.   If PLYRCRD=5 Then ZZ=18 : FPI=2 : Proc WRTWRD : Wait 30 : Pop Proc
  365.   Wait 20 : ZZ=11 : FPI=2 : Proc WRTWRD
  366. End Proc
  367. '
  368. Procedure BANKTWST
  369.   ZZ=12 : FPI=2 : Proc WRTWRD
  370.   Wait 30 : Add BANKX,50
  371.   Proc RANDOM
  372.   Paste Bob BANKX,64,ANS(XN-1)
  373.   Sam Play 1,6,10000 : Wait 10
  374.   Inc BANKCRD
  375.   If CRD>10 Then CRD=10
  376.   PONCRD=CRD : Add BANKSCORE,PONCRD
  377.   Locate 35,14 : Print BANKSCORE
  378.   If BANKSCORE>21 Then BUST=2 : Pop Proc
  379.   Bob Off 1
  380.   If BANKCRD=5 Then ZZ=18 : FPI=2 : Proc WRTWRD : Wait 30 : Pop Proc
  381.   ZZ=14 : FPI=2 : Proc WRTWRD
  382.   Wait 10
  383. End Proc
  384. '
  385. Rem ***** The results section *****
  386. Procedure PONRESULTS
  387. Repeat 
  388.   If BUST=1
  389.      Proc BANKWINS
  390.   Else If BUST=2
  391.      Proc PLYRWINS
  392.   Else If BANKCRD=5
  393.      Proc BANKWINS
  394.   Else If PLYRCRD=5
  395.      Proc PLYRWINS
  396.   Else If BANKSCORE>=PLYSCORE and BUST<2
  397.      Proc BANKWINS
  398.   Else If PLYSCORE>BANKSCORE and BUST<>1
  399.      Proc PLYRWINS
  400.   End If : End If : End If : End If : End If : End If 
  401. Until ND=1
  402.   ND=0
  403. End Proc
  404. '
  405. Procedure BANKWINS
  406.   ZZ=15 : FPI=2 : Proc WRTWRD
  407.   Wait 30 : ND=1
  408. End Proc
  409. '
  410. Procedure PLYRWINS
  411.   ZZ=16 : FPI=2 : Proc WRTWRD
  412.   Add SCORE,1000
  413.   Locate 40,19 : Print SCORE
  414.   Wait 30 : ND=1
  415. End Proc
  416. '
  417. Rem ***** Procedure to straighten everything up again *****
  418. Procedure FINITO
  419.   Shared GS
  420.   Cls 10,308,36 To 339,48
  421.   Paste Icon 318,37,FSTRNTHR
  422.   Dec FSTRNTHR
  423.   BANKX=50 : PLYX=350 : BUST=0
  424.   BANKCRD=2 : PLYRCRD=2
  425.   BANKSCORE=0 : PLYSCORE=0 : ND=0
  426.   Locate 35,14 : Print "   "
  427.   Locate 70,14 : Print "   "
  428.   Cls 3,44,60 To 300,106
  429.   Cls 3,345,60 To 608,106
  430.   If FSTRNTHR=52 Then ND=1 : GS=1
  431.   Wait 30
  432.   Cls 10,130,178 To 508,191
  433. End Proc
  434. '
  435. '
  436. Rem ***** The Sub routines for the first and third parts 
  437. '
  438. Procedure ICRD
  439.   Wait 10 : Inc RDN : CRD2=CRD
  440.   Proc HGH_LW
  441. End Proc
  442. '
  443. Procedure RANDOM
  444. Shared GS
  445. PNT:
  446.   If ANS(XN)>39
  447.      CRD=ANS(XN)-39
  448.   Else If ANS(XN)>26 and ANS(XN)<40
  449.      CRD=ANS(XN)-26
  450.   Else If ANS(XN)>13 and ANS(XN)<27
  451.      CRD=ANS(XN)-13
  452.   Else If ANS(XN)<14
  453.      CRD=ANS(XN)
  454.         End If 
  455.       End If 
  456.     End If 
  457.   End If 
  458.   Inc XN
  459.   If XN=53 Then XN=1
  460.   If XN=1 and GS=5 Then Goto PNT
  461. End Proc
  462. '
  463. Procedure HGH_LW
  464.   HL=0
  465.   If RDN=4 Then Proc BT_GM : SCPCN=1 : Pop Proc
  466.   Add X,50
  467.   Cls 10,138,157 To 517,170
  468.   ZZ=0 : Proc WRTWRD
  469. Do 
  470.   If Jleft(1) Then HL=1 : Bob 1,H,60,54
  471.     If HL=1 and Fire(1) Then ZZ=1 : Proc WRTWRD : Bob Off 1 : Wait 10 : Pop Proc
  472.   If Jright(1) Then HL=2 : Bob 1,H+90,60,54
  473.     If HL=2 and Fire(1) Then ZZ=2 : Proc WRTWRD : Bob Off 1 : Wait 10 : Pop Proc
  474. Loop 
  475. End Proc
  476. '
  477. Procedure BT_GM
  478.   PCN=54 : Dec XN : BG=0
  479.   ZZ=6 : Proc WRTWRD
  480. Do 
  481.   If Jleft(1) Then BG=1 : Bob 1,BET,113,55
  482.     If BG=1 and Fire(1) Then Bob Off 1 : WIN=0 : Proc WN_LOSE : Pop Proc
  483.   If Jright(1) Then BG=2 : Bob 1,BET+60,113,55
  484.     If BG=2 and Fire(1) Then Bob Off 1 : Proc NW_GAME : Pop Proc
  485. Loop 
  486. End Proc
  487. '
  488. Procedure WN_LOSE
  489. Do 
  490. If WIN=100 Then Proc NW_GAME : Pop Proc
  491. Wait 30
  492. J=1
  493. PCK=Rnd(1)+1
  494.   If PCK=1
  495.     Goto FRST
  496.   Else 
  497.     Goto SCND
  498. End If 
  499. '
  500. FRST:
  501.   Bob 2,GAM,113,55
  502.   Sam Play 1,7,10000
  503. Do 
  504.   Inc J
  505.     If J=SPEED Then J=1 : Goto SCND
  506.   If Fire(1) Then Bob Off : Proc NW_GAME : Pop Proc
  507.   If Key State(80)=True Then SPEED=2000
  508. Loop 
  509. '
  510. SCND:
  511.   Bob 2,GAM+60,113,55
  512.   Sam Play 1,7,10000
  513. Do 
  514.   Inc J
  515.     If J=SPEED Then J=1 : Goto FRST
  516.     If Fire(1) Then Goto THRD
  517. Loop 
  518. '
  519. THRD:
  520.   WIN=-10
  521.   Inc GMBL
  522.   If GMBL=1
  523.         WIN=10 : SPEED=900
  524.     Else If GMBL=2
  525.         WIN=20 : SPEED=800
  526.     Else If GMBL=3
  527.         WIN=40 : SPEED=700
  528.     Else If GMBL=4
  529.         WIN=80 : SPEED=500
  530.     Else If GMBL=5
  531.         WIN=100
  532. End If : End If : End If : End If : End If 
  533. Add GAM,60
  534. Loop 
  535. End Proc
  536. '
  537. Procedure NW_GAME
  538.   Inc XN : Wait 20 : Bob Off 
  539.   If XN=53 Then XN=1
  540.   Wait 30
  541.   For F=X To 198 Step -50
  542.     Paste Bob F,Y,53 : Shoot : Wait 10
  543.   Next F
  544.   Add SCORE,WIN
  545.   Locate 69,8 : Print SCORE;" "
  546.   If SCORE=0 or PCN=59 Then Sam Play 1,3,10000 : Wait 45 : Fade 3 : Wait 45 : Proc HGHSCR : SCPCN=1 : Pop Proc
  547.   Wait 10
  548.   ZZ=5 : Proc WRTWRD : Wait 20
  549.   Bob Off : Cls 10,138,157 To 517,170
  550. End Proc
  551. '
  552. Rem ***** The sub routines for the second and fourth parts ***** 
  553. '
  554. Procedure RGHT_CRD
  555.   Add X,50 : Inc NRW
  556.   If NRW=4
  557.     Add Y,47 : X=200
  558.   Else If NRW=9
  559.     Add Y,47 : X=200
  560.   End If 
  561. End If 
  562.   Wait 10 : CRD2=CRD
  563.   Add SCORE,RGHT
  564.   Locate 69,8 : Print SCORE
  565.   Cls 3,0,0 To 10,90
  566. If NRW=14 Then Proc AGN
  567. End Proc
  568. '
  569. Procedure ZILCH
  570.   Sam Play 1,2,6000 : Wait 100
  571.   Proc CLEANOUT
  572.   Cls 10,450,96 To 635,109
  573.   Add SCORE,RGHT
  574.   Cls 10,145,52 To 170,65
  575.   Paste Icon 150,54,FSTRNTHR
  576.   Dec FSTRNTHR : Wait 10
  577.     Proc AGN
  578. End Proc
  579. '
  580. Procedure PCK_WHCH
  581.   HL=0 : FPI=1
  582.   Cls 10,450,96 To 635,109
  583.   ZZ=7 : FPI=1 : Proc WRTWRD
  584. TME=0
  585. Repeat 
  586.   Inc TME
  587.   If Jleft(1) Then HL=1 : Bob 1,H,83,54
  588.     If HL=1 and Fire(1) Then Bob Off 1 : Pop Proc
  589.   If Jright(1) Then HL=2 : Bob 1,H+90,83,54
  590.     If HL=2 and Fire(1) Then Bob Off 1 : Pop Proc
  591. Until TME=1500
  592.   Bob Off 1 : X=X-50
  593. Proc ZILCH
  594.   X=200 : Y=47 : NRW=-1
  595.   Cls 10,450,96 To 635,109
  596.   Wait 50
  597. End Proc
  598. '
  599. Procedure AGN
  600.   If GAMESTATE=2 and FSTRNTHR=52
  601.      Fade 3 : Wait 45 : SCPCN=1 : GAMESTATE=3 : Pop Proc
  602.   Else If GAMESTATE=4 and FSTRNTHR=52
  603.      Fade 3 : Wait 45 : SCPCN=1 : GAMESTATE=1 : Pop Proc
  604. End If : End If 
  605.   Cls 10,450,96 To 635,109
  606.   If NRW=14 Then Wait 30 : X=400 : Proc CLEANOUT
  607.   FPI=1 : ZZ=8 : Proc WRTWRD
  608. Do 
  609.   If Key State(21)=True or Fire(1) Then Pop Proc
  610.   If Key State(54)=True Then Fade 3 : Wait 45 : Proc HGHSCR : Pop Proc
  611. Loop 
  612. End Proc
  613. '
  614. Rem ***** The other routines for packs, highscores etc ***** 
  615. '
  616. Procedure NWPCK
  617.   Wait 20
  618.   Cls 10,138,157 To 517,170
  619.   ZZ=10 : Proc WRTWRD
  620.   Proc CHSECRD
  621.   ZZ=19 : Proc WRTWRD
  622.   Wait 30
  623.   Fade 3 : Wait 45 : Proc GAMESETUP3
  624.   MRSCR=SCORE+200
  625.   NPCK=SCORE
  626.   Add NPCK,20000
  627.   Unpack 8 To 0 : Double Buffer 
  628.   If GAMESTATE=3 Then Paste Bob 272,15,56
  629.   Wait 20
  630. End Proc
  631. '
  632. Procedure HGHSCR
  633.   Music 1 : Wait 10
  634.   A=1
  635. Repeat 
  636.   If SCORE>HIGH(A)
  637.   Proc HIGHADD
  638. A=99
  639. End If 
  640. Inc A
  641. Until A>=7
  642.   Unpack 11 To 0
  643.   Wait 20
  644. LFT=7
  645. Paper 3 : Pen 1
  646. For A=1 To 6
  647.   Locate 23,LFT : Print A
  648.   Locate 27,LFT : Print HIGHNAME$(A)
  649.   Locate 43,LFT : Print HIGH(A)
  650.   Cls 3,0,0 To 10,10
  651.   Inc LFT : Inc LFT
  652.   Wait 10
  653. Next A
  654.   RD=0 : RNTHR=0 : PCN=54
  655.   TWLG=0
  656. Do 
  657.   If Fire(1) Then Music Off : Fade 3 : Wait 45 : MDE=0 : SCPCN=1 : GAMESTATE=1 : Pop Proc
  658.   Inc TWLG
  659.   If TWLG=25000 Then Fade 3 : Wait 45 : MSC=1 : SCPCN=1 : GAMESTATE=0 : Pop Proc
  660. Loop 
  661. End Proc
  662. '
  663. Procedure HIGHADD
  664.   Screen Open 1,320,256,2,Lowres
  665.   Screen 1
  666.   Palette $0,$FFF
  667.   Clear Key 
  668.   Locate 0,1 : Under On : Centre "HIGH SCORES" : Under Off 
  669.   Locate 3,6
  670.   Centre "Enter name (Up to 8 letters)"
  671.   Locate 3,8 : Line Input "     :  ";N$
  672.   Curs Off : Wait 20
  673.   NAME$=Left$(N$,8)
  674.   B=6 : While B>A
  675.   HIGH(B)=HIGH(B-1)
  676.   HIGHNAME$(B)=HIGHNAME$(B-1)
  677.   Dec B : Wend 
  678.   HIGH(A)=SCORE
  679.   HIGHNAME$(A)=NAME$
  680.    Screen Close 1 : Screen 0
  681. End Proc
  682. '
  683. Procedure WRTWRD
  684.   WP=160 : DWN=158 : CHRT=1
  685.   If FPI=0 Then Cls 10,138,157 To 517,170
  686.   If FPI=1 Then WP=455 : DWN=96
  687.   If FPI=2 Then WP=135 : DWN=179 : Cls 10,130,178 To 508,191
  688. PLC_ICN:
  689.   WRD$=WRDS$(ZZ)
  690.   Proc NWCHAR : Inc CHRT
  691.     If CHRT=Len(WRD$) Then FPI=0 : Pop Proc
  692. Goto PLC_ICN
  693. End Proc
  694. Procedure NWCHAR
  695.   E1$=Mid$(WRD$,CHRT,1)
  696.   E1=Instr(SCRL$,E1$)
  697.   Paste Icon WP,DWN,E1 : Add WP,13
  698.   If SP=1 Then Sam Play 1,7,10000
  699.   Wait Vbl 
  700. End Proc
  701. '
  702. Procedure CLEANOUT
  703.   If NRW<4
  704.      Proc BLST1
  705.   Else If NRW>=4 and NRW<9
  706.      Proc BLST2
  707.   Else If NRW>8
  708.      Proc BLST3
  709. End If : End If : End If 
  710. X=200
  711. End Proc
  712. '
  713. Procedure BLST1
  714.   For F=X To 200 Step -50
  715.      Paste Bob F,Y,53 : Shoot : Wait 10
  716.   Next F
  717. End Proc
  718. '
  719. Procedure BLST2
  720.   For F=X To 200 Step -50
  721.      Paste Bob F,Y,53 : Shoot : Wait 10
  722.   Next F
  723. X=400 : Y=47
  724.   For F=X To 200 Step -50
  725.      Paste Bob F,Y,53 : Shoot : Wait 10
  726.   Next F
  727. End Proc
  728. '
  729. Procedure BLST3
  730.   For F=X To 200 Step -50
  731.      Paste Bob F,Y,53 : Shoot : Wait 10
  732.   Next F
  733. X=400 : Y=94
  734.   For F=X To 200 Step -50
  735.      Paste Bob F,Y,53 : Shoot : Wait 10
  736.   Next F
  737. X=400 : Y=47
  738.   For F=X To 200 Step -50
  739.      Paste Bob F,Y,53 : Shoot : Wait 10
  740.   Next F
  741. End Proc
  742. '
  743. Procedure INITHIGHSCORES
  744. A=1
  745. Repeat 
  746.   HIGHNAME$(A)=Left$("Kinghigh"+Space$(20),20)
  747.   HIGH(A)=7000-(A*1000)
  748.   Inc A
  749. Until A=7
  750.   For F=0 To 19
  751.     Read WRDS$(F)
  752.   Next F
  753. Data "High or Low ? "
  754. Data "High. "
  755. Data "Low. "
  756. Data "Correct ! "
  757. Data "Wrong ! "
  758. Data "Right - Lets go again !"
  759. Data "Bet winnings OR save ? "
  760. Data "Next.."
  761. Data "Again Y-N ? "
  762. Data "REMEMBER get it WRONG ! "
  763. Data "Hang on - NEW PACK TIME."
  764. Data "You're Play ! "
  765. Data "Twist. "
  766. Data "Stick. "
  767. Data "Bank to Play ! "
  768. Data "The Bank WINS. "
  769. Data "You WIN - Take 1000 Points. "
  770. Data "   --- BUST ---  !!! "
  771. Data "FIVE CARD TRICK - Great !"
  772. Data "Now play KINGHIGH PONTOON !"
  773. End Proc
  774. '
  775. Procedure CHSECRD
  776.   Shared AN,CN,FX
  777.   AN=1
  778. MAIN:
  779.   CN=0 : FX=Rnd(51)+1
  780.   If AN>1 Then Proc CHCK : If CN=1 Then Goto MAIN
  781.   ANS(AN)=FX : CN=0 : Inc AN
  782.   If AN=53 Then Pop Proc
  783. Goto MAIN
  784. End Proc
  785. Procedure CHCK
  786.   Shared AN,CN,FX
  787.   For F=1 To AN
  788.     If ANS(F)=FX Then CN=1
  789.   Next F
  790. End Proc